草庐IT

COM 引用计数

全部标签

windows - 如何在 Powershell 中引用 WinRT 组件

我正在尝试使用Windows.SystemPowerShell中命名空间,WinRT的一部分。程序集不是dll,而是winmd。将程序集加载到PowerShell的两种方式似乎不起作用#[System.Reflection.Assembly]::LoadFile("C:\ProgramFiles(x86)\WindowsKits\8.0\References\CommonConfiguration\Neutral\Windows.winmd")#Add-Type-Path"C:\ProgramFiles(x86)\WindowsKits\8.0\References\CommonCon

Windows COM : generic byte array sink

是否有一个通用(标准)WindowsCOM接口(interface)来定义通用字节数组接收器(即定义类似write(char*buf,intlen)方法的东西)?我可以定义一个自定义接口(interface)并实现它,但我认为必须已经为此目的定义了一些通用COM接口(interface)。 最佳答案 查看IStream或ISequentialStream。对于不想实现的方法,直接返回E_NOTIMPL即可。https://msdn.microsoft.com/en-us/library/windows/desktop/aa38001

c# - 完全重启后如何卸载未使用的 COM 对象/库?

事情是这样的。我正在通过COM连接到KNX/EIB的某些设备。但有时——无论如何我都想为最坏的情况做好准备——我的应用程序崩溃,不知何故,所有对象和库都暴露在某处。我注意到当我重新启动应用程序时,我无法再次建立连接。我收到一个连接过程的错误,但实际上运行正常。有时这个连接过程是随机的,有时它不是。那很不好!一段时间(几分钟)后,它似乎在一系列完全失败后再次工作。但我想我现在看到了一种模式。在没有干净断开的情况下崩溃后它不起作用。我的猜测是有些对象与设备保持连接,这就是我无法获得新连接的原因。这就是我问这个问题的原因。问题:如何卸载那些未使用的对象以杀死不死连接?如何让Windows检查

windows - 如何使用 MediaInfo 将视频文件的帧率和流计数信息转换为文本文件?

我在Windows7的命令提示符窗口中从批处理文件中执行控制台命令时遇到问题。我想获取视频的帧速率和音频流的数量,并将它们写入文本文件。对于帧速率没有问题,我从批处理文件中运行此命令:for%%ain(C:\Documents)do(echo.Mediainfo--Inform=Video;%%FrameRate%%%%a)>>"D:\TestFrame2.txt"但是对于音频流的数量,它返回一个空文本并且没有错误信息。我使用完全相同的批处理文件,但我将Video替换为Audio并将FrameRate替换为StreamCount。我在运行Mediainfo--Help-Inform时看

c++ - 通过 IIS 应用程序池 w3wp.exe 调用 COM DLL 时未调用 DLL_THREAD_ATTACH

我在我的COMDLL中收到一些DLL_THREAD_ATTACH通知,但没有来自实际调用我的COMDLL的应用程序池工作线程。随后,从IIS发起的对DLL的调用到达从未调用过DLL_THREAD_ATTACH的线程。当DLL附加到dllhost.exe(通过DLL_PROCESS_ATTACH)时,仅通知应用程序池的第一个线程。这是缺陷还是功能,是否有任何解决方法? 最佳答案 DLL_THREAD_ATTACH经常被误解。您没有提供足够的信息,但您的问题很可能是由于此造成的:来自MSDNdocumentation,强调我的:DLL_

node.js - Nodejs OLE-COM 服务器

我正在使用win32ole访问WindowsPC中的COM-OLE(自动化)绑定(bind),例如excel、word等。现在我想要的是使用nodejs实现一个COM-OLE服务器。我似乎找不到任何支持这些的nodejs模块。最后,我只需要将COM-OLE对象/接口(interface)暴露给PC内运行的任何应用程序,以便它们可以访问我的应用程序。谢谢,顺便说一句,我正在使用Electron.js。 最佳答案 因为win32ole似乎只作为客户端运行,所以您遇到了以下两种情况之一:用C++实现您自己的COM服务器(nan有助于Nod

c# - 64 位服务器中的 ASMX 到 COM 调用

我正在尝试从IIS8.5和WindowsServer201264位服务器中托管的ASMX网络服务调用COM库方法(COM互操作性)。但是调用没有响应。我做了以下更改以确保我们进行正确的设置1。为应用程序池设置启用32位application=true2。在以下位置注册COMC:\Windows\System32&C:\Windows\SysWoW643。尝试将web服务项目编译为目标X86配置4。将Web服务的执行超时更改为10分钟5。是否设置了适用于我的Windows应用程序的应用程序池标识但是以上都不行。Justtoverify.NetandCOMcommunication,Iha

c++ - 是否可以在不在注册表中注册的情况下创建和使用 COM 类?

我需要制作一个最终看起来类似于此的自定义COM对象:staticconstGUIDIID_ClientCommunicator={0x5219b44a,0x874,0x449e,{0x86,0x11,0xb7,0x8,0xd,0xbf,0xa6,0xab}};staticconstGUIDCLSID_ClientCommunicator={0x5219b44b,0x874,0x449e,{0x86,0x11,0xb7,0x8,0xd,0xbf,0xa6,0xab}};classATL_NO_VTABLECClientCommunicator:publicCComObjectRootEx

windows - 线程 "main"com.jacob.com.ComFailException : Can't co-create object 中的异常

我正在学习本教程:http://www.joecolantonio.com/2014/07/02/selenium-autoit-how-to-automate-non-browser-based-functionality/在Windows中自动化非浏览器应用程序。importjava.io.File;importautoitx4java.AutoItX;importcom.jacob.com.LibraryLoader;importjava.lang.System;publicclassCalcTest{/****ReturnsiftheJVMis32or64bitversion*

c++ - 在同一个 DLL 中使用 _COM_SMARTPTR CreateInstance 而无需注册

我目前正在尝试编写一个DLL,它使用在系统中注册的Typelib(.tlb)。此Typelib要求我使用自己的类实现两个接口(interface),并在运行对象表中注册其中一个,这是我在使用VisualStudio2015的ATL项目中完成的。使用我的DLL的应用程序应该完全不了解COM,一切都应该在幕后工作并隐藏在我正在实现的DLL中。在我的DLL中,有时我试图获取类MyClass的实例,它实现了上面提到的类型库的COM接口(interface)。代码如下所示:IInterfaceClassPtrdataPtr;hr=dataPtr.CreateInstance(CLSID_MyCl